<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html> 
<script>
    //T1
    //写一个函数，功能是告诉你 你所选订的小动物的 叫声儿
        function scream(animal){
           switch(animal){
            case "dog":
            document.write('wang!!');
            return;
            case "cat":
            document.write('miao!!');
            return;
            case "fish":
            document.write('~0~~0~0');
            return;
           }
        }
        scream('dog')   //wang!!
        
    //T2
    //实现格式化输出。比如99999999999999999999/输出999，999，999，
    //api版 Intl兼容性不好 到ie6
    //方法1toLocaleString
    //方法返回 这个数字在特定语言环境下的表示的字符串 
        // function formatNumber(num){
        //     return num.toLocaleString('en-US');
        // }
        // console.log(formatNumber(112222222222222222222)) //112,222,222,222,222,230,000
    //方法2IntL对象
        // function formatNumber(num){
        //     return new Intl.NumberFormat().format(num);
        // }
        // console.log(formatNumber(826164884157454184))    //826,164,884,157,454,200
    //方法3 正则
    


    //替换日期格式，xxxx-yy-zz 替换成 xxx-zz-yy
        // var reg = /(\d{2})\.(\d{2})\/(\d{4})/
        // var data = '10.24/2017'
        // data = data.replace(reg, '$3-$1-$2')
        // console.log(data)//2017-10-24
        

    //对作用域上下文和this?
    //func是在window的上下文中被执行的，所以不会访问到count属性
        //     var User = {
        //     count: 1,
        //     getCount: function() {
        //     return this.count;
        // }
        // };
        // console.log(User.getCount()); // what?
        // var func = User.getCount;
        // console.log(func());          // what?  
        

    //
        // for(var i = 1; i <= 3; i++){  //建议使用let 可正常输出i的值
        //     setTimeout(function(){
        //         console.log(i);    //4.4.4
        //     },0);  
        //     };    
            for(let i = 1; i <= 3; i++){  //建议使用let 可正常输出i的值
            setTimeout(function(){
                console.log(i);    //1.2.3
            },0);  
            };  

    //  3 + 2 +“7”的结果是什么？
        //由于3和2是整数，它们将直接相加。由于7是一个字符串，它将会被直接连接，所以结果将是57。





        //字符串，分别字母里面有多少个？
        var str='abcabcabccccb';
        String.prototype.returnText=function(){
            var json={};
            //this指向str字符串
            for(var i=0;i<this.length;i++){
                if(json[this[i]]){
                    json[this[i]]+=1
                }else{
                    json[this[i]]=1
                }
            }
            var str='';
            for(var i in json){
                str+=i+'有'+json[i]+'个';
            }
            return str;
        }
        console.log(str.returnText())


        // 修改代码 输出 hellow world 
        // if(){
        //     console.log('hello')
        // }else{
        //     console.log('world')
        // }
        // hello world 
        if((function(){
            console.log('hello world')
            console.log=function(){}//log是一个console对象上的方法，log函数中有让传的实参给输出到控制台上的方法；写一个函数把这个函数给覆盖了，最后再怎么给log函数传参，都不会输出东西
        })()){
            console.log('hello')
        }else{
            console.log('world')
        }
           


        // 用js递归的方式写1到100求和？
        // function add(num1,num2){
        //     var num = num1+num2;
        //         if(num2+1>100){
        //     return num;
        //     }else{
        
        
            //     return add(num,num2+1)

        //         }
        // }
        // var sum =add(1,2);
</script>